Raymarching Toolkitに触ってみる
何?
Raymarchのふんいきがコードを書かなくても楽しめる。
Unity2017以上に対応。個人で商用利用でなければ無料。VRで動く。
2019/9現在なら、Kanetaaaaa神の記事を読めばHDRPでレイマーチングできます。 2018/11/27 無料のリンクはなくなって、$75↑の支払いが必要になった。
2018/11/28 Mirage SOLOにデプロイしたらレイマーチングが表示されない。
https://gyazo.com/0217a615e6c4430b4c6866d4689a72a9
自動生成されるシェーダーで、outパラメータのセットがなぜかコメントアウトされる。分岐網羅されていないのでシェーダーエラー→レイマーチングが描画されない…のではないかと推測
https://gyazo.com/d5e6bd5dde2381257d76492cb74bc12e
Stripesで起きてる気がする
どう使うの?
クイックスタートページの手順にそって動かしてみると、さわりの部分がわかる。
つまりどういうこと?
たとえばRaymarchのこの↓コードを用意する。Raymarching Toolkitではコードを使うこともできる。
code:HLSL
// CEDEC2017でのi-saintさんの講演資料より
// pseudo_kleinian
// PseudoKleinian(float3 p)
float3 CSize = float3(0.92436, 0.90756, 0.92436);
float size = 1;
float3 c = float3(0, 0, 0);
float de = 1;
float3 offset = float3(0, 0, 0);
float3 ap = p + 1;
for(int i=0; i<10; i++)
{
ap = p;
p -= 2 * clamp(p, -CSize, CSize);
float r2 = dot(p, p);
float k = max(size / r2, 1);
p *= k;
de *= k;
p += c;
}
float r = abs(0.5 * abs(p.z - offset.z) / de);
return r;
このコードをもとにAssetファイルを作る。(Assets/Raymarching Toolkit/Assets/Snippets/Objectsを参照)
既存のファイルをコピーして選択し、インスペクターにコードを貼り付ける。
https://gyazo.com/50120ea6a31fab3c209506b5a820dffd
Add to sceneを押すとヒエラルキーに登録される。
https://gyazo.com/4a00e302aef1177472d8177ba4d42fad
Raymarcherがないと動かないので、Create Objectする。
https://gyazo.com/cdec2f1654bc1ded8092c83bb9a36110
作成されたレイマーチオブジェクト。
マテリアルを変更すると、ライティングなどを変えることができる。
https://gyazo.com/b138f2fef034b7a78471ffce21fcb054
画面が表示される。ライトとかカメラを調整するとルックが完成。
https://gyazo.com/55e2091c0041769f472238f4ed97fd6e
https://gyazo.com/e1ee92b02c7a8428524bf8fc0ed75707
あとはカメラの移動とかライトの色をスクリプトでいじったり、VRでデプロイしたりする。
(おしまい)
リンク